/**
 * @type {import('cz-git').UserConfig}
 */
export default {
	extends: ['@commitlint/config-conventional'],
	plugins: ['commitlint-plugin-function-rules'], // 使用函数作为规则值。
	prompt: {
		// 用来定义一些常用的git commit message。
		/** @use czg :b | czg --alias=b | pnpm commit :b */
		alias: {
			b: 'build: bump dependencies',
			c: 'chore: update config',
			s: 'style: format code',
			f: 'fix: fix a bug',
		},
		allowCustomIssuePrefix: false, // 是否允许自定义issue前缀
		allowEmptyIssuePrefix: false, // 是否允许空issue前缀

		messages: {
			type: '选择你要提交的类型 :',
			scope: '选择一个提交范围（可选）:',
			customScope: '请输入自定义的提交范围 :',
			subject: '填写简短精炼的变更描述 :\n',
			body: '填写更加详细的变更描述（可选）。使用 "|" 换行 :\n',
			breaking: '列举非兼容性重大的变更（可选）。使用 "|" 换行 :\n',
			footerPrefixesSelect: '选择关联issue前缀（可选）:',
			customFooterPrefix: '输入自定义issue前缀 :',
			footer: '列举关联issue (可选) 例如: #31, #I3244 :\n',
			confirmCommit: '是否提交或修改commit ?',
		},
		types: [
			{ value: 'feat', name: 'feat:     ✨  新增功能', emoji: ':sparkles:' },
			{ value: 'fix', name: 'fix:      🐛  修复bug', emoji: ':bug:' },
			{ value: 'docs', name: 'docs:     📝  文档变更', emoji: ':memo:' },
			{ value: 'style', name: 'style:    💄  代码格式', emoji: ':lipstick:' },
			{
				value: 'refactor',
				name: 'refactor: ♻️   代码重构',
				emoji: ':recycle:',
			},
			{ value: 'perf', name: 'perf:     ⚡️  性能提升', emoji: ':zap:' },
			{
				value: 'test',
				name: 'test:     ✅  测试相关',
				emoji: ':white_check_mark:',
			},
			{
				value: 'build',
				name: 'build:    📦️  构建流程、外部依赖变更（如升级 npm 包、修改 webpack 配置等）',
				emoji: ':package:',
			},
			{
				value: 'ci',
				name: 'ci:       🎡  修改 CI 配置、脚本',
				emoji: ':ferris_wheel:',
			},
			{
				value: 'chore',
				name: 'chore:    🔨  对构建过程或辅助工具和库的更改（不影响源文件、测试用例）',
				emoji: ':hammer:',
			},
			{ value: 'revert', name: 'revert:   ⏪️  回退代码', emoji: ':rewind:' },
			{
				value: 'wip',
				name: 'wip:      🚧  正在开发中',
				emoji: ':construction:',
			},
			{
				value: 'workflow',
				name: 'workflow: 👷  工作流程改进',
				emoji: ':construction_worker:',
			},
			{
				value: 'types',
				name: 'types:    🏷️   类型定义文件修改',
				emoji: ':label:',
			},
		],
		useEmoji: true,
	},
}
